package fr.polichouz.geotracer.sender;

import android.util.Log;
import fr.polichouz.geotracer.shared.Logger;

/**
 * Android based logger.
 * 
 * @author Yoyo
 */
public class AndroidLogger implements Logger {
    
    /** Tag */
    private String tag;

    /**
     * Full constructor.
     * 
     * @param tag Application TAG. If empty, will be "Unknown application tag"
     */
    public AndroidLogger(String tag) {
	
	if (tag == null || tag.length() == 0) {
	    tag = "Unknown application tag";
	}
	
	this.tag = tag;
    }

    /**
     * @see fr.polichouz.geotracer.shared.Logger#verbose(java.lang.String)
     */
    @Override
    public void verbose(String message) {
	Log.v(tag, message);
    }

    /**
     * @see fr.polichouz.geotracer.shared.Logger
     * #verbose(java.lang.String, java.lang.Throwable)
     */
    @Override
    public void verbose(String message, Throwable tr) {
	Log.v(tag, message, tr);
    }

    /**
     * @see fr.polichouz.geotracer.shared.Logger#info(java.lang.String)
     */
    @Override
    public void info(String message) {
	Log.i(tag, message);
    }

    /**
     * @see fr.polichouz.geotracer.shared.Logger
     * #info(java.lang.String, java.lang.Throwable)
     */
    @Override
    public void info(String message, Throwable tr) {
	Log.v(tag, message, tr);
    }

    /**
     * @see fr.polichouz.geotracer.shared.Logger#debug(java.lang.String)
     */
    @Override
    public void debug(String message) {
	Log.d(tag, message);
    }

    /**
     * @see fr.polichouz.geotracer.shared.Logger
     * #debug(java.lang.String, java.lang.Throwable)
     */
    @Override
    public void debug(String message, Throwable tr) {
	Log.d(tag, message, tr);
    }

    /**
     * @see fr.polichouz.geotracer.shared.Logger#warning(java.lang.String)
     */
    @Override
    public void warning(String message) {
	Log.w(tag, message);
    }

    /**
     * @see fr.polichouz.geotracer.shared.Logger
     * #warning(java.lang.String, java.lang.Throwable)
     */
    @Override
    public void warning(String message, Throwable tr) {
	Log.w(tag, message, tr);
    }

    /**
     * @see fr.polichouz.geotracer.shared.Logger#error(java.lang.String)
     */
    @Override
    public void error(String message) {
	Log.e(tag, message);
    }

    /**
     * @see fr.polichouz.geotracer.shared.Logger
     * #error(java.lang.String, java.lang.Throwable)
     */
    @Override
    public void error(String message, Throwable tr) {
	Log.e(tag, message, tr);
    }

}
